
#include <stdio.h>

int main() {
    char filename[100];
    FILE *file;
    char ch;
    int lines = 0, words = 0, chars = 0;
    int in_word = 0; // 标记是否在单词中

    // 获取文件名
    printf("请输入要统计的文件名: ");
    scanf("%s", filename);

    // 打开文件
    file = fopen(filename, "r");
    if (file == NULL) {
        printf("无法打开文件 %s\n", filename);
        return 1;
    }

    // 逐个字符读取文件
    while ((ch = fgetc(file)) != EOF) {
        chars++; // 统计字符数
        
        // 统计行数（遇到换行符）
        if (ch == '\n') {
            lines++;
        }
        
        // 统计单词数（遇到空格、换行符或制表符表示单词结束）
        if (ch == ' ' || ch == '\n' || ch == '\t') {
            if (in_word) {
                words++;
                in_word = 0;
            }
        } else {
            in_word = 1;
        }
    }
    
    // 处理文件末尾可能未统计的单词
    if (in_word) {
        words++;
    }
    
    // 关闭文件
    fclose(file);

    // 显示统计结果
    printf("\n统计结果:\n");
    printf("行数: %d\n", lines);
    printf("单词数: %d\n", words);
    printf("字符数: %d\n", chars);

    return 0;
